package ch.admin;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;

/**
 * Classe con i metodi per la lettura/scrittura su file
 * 
 * @author      D. Dolfini
 */

public class FileIO
{
  /**
   * Legge un file contenuto in html/ e ritorna il contenuto in una stringa.
   * 
   * @param filename il nome del file da leggere
   * @return una stringa con il contenuto del file
   */
  static String read( String filename )
  {
    String file = "";
    String path = "html/";

    try
    {
      FileInputStream fstream = new FileInputStream( path + filename );
      DataInputStream in = new DataInputStream( fstream );
      BufferedReader br = new BufferedReader( new InputStreamReader( in ) );

      String strLine;
      while ( ( strLine = br.readLine() ) != null )
      {
        file += strLine + "\n";
      }

      in.close();
    }

    catch ( Exception e )
    {
      System.err.println( "Errore: " + e.getMessage() );
    }

    return file;
  }

  /**
   * Legge un file e ritorna il contenuto in una stringa
   * 
   * @param path il percorso in cui é contenuto il file
   * @param filename il nome del file da leggere
   * @return una stringa con il contenuto del file
   */
  static String read( String path, String filename )
  {
    String file = "";

    try
    {
      FileInputStream fstream = new FileInputStream( path + filename );
      DataInputStream in = new DataInputStream( fstream );
      BufferedReader br = new BufferedReader( new InputStreamReader( in ) );

      String strLine;
      while ( ( strLine = br.readLine() ) != null )
      {
        file += strLine + "\n";
      }

      in.close();
    }

    catch ( Exception e )
    {
      System.err.println( "Errore: " + e.getMessage() );
    }

    return file;
  }

  /**
   * Scrive la stringa passata come parametro in un file contenuto in html/
   * 
   * @param filename il nome del file da creare
   * @param output la stringa che si vuole scrivere in un file
   */
  static void write( String filename, String output )
  {
    String path = "html/";

    try
    {
      FileWriter fstream = new FileWriter( path + filename );
      BufferedWriter out = new BufferedWriter( fstream );

      out.write( output );

      out.close();
    }
    catch ( Exception e )
    {
      System.err.println( "Error: " + e.getMessage() );
    }
  }

  /**
   * Scrive la stringa passata come parametro in un file
   * 
   * @param path il percorso in cui creare il file
   * @param filename il nome del file da creare
   * @param output la stringa che si vuole scrivere in un file
   */
  static void write( String path, String filename, String output )
  {
    try
    {
      FileWriter fstream = new FileWriter( path + filename );
      BufferedWriter out = new BufferedWriter( fstream );

      out.write( output );

      out.close();
    }
    catch ( Exception e )
    {
      System.err.println( "Error: " + e.getMessage() );
    }
  }
}
